package com.ln.demo1026;

import jdk.internal.org.objectweb.asm.tree.analysis.Value;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author Ln
 * @version 终极版
 * @date 2022/10/26 15:28
 */
public class Test03 {

}
//表示该注解可以使用到类上
@Target(value={ElementType.TYPE})
//表示该注解在运行节点有效
@Retention(RetentionPolicy.RUNTIME)
@interface Annotation{
    //一旦定义好属性如果该属性没有默认值，那么必须在使用该注解时指定属性的值
    String address() default "北京";
    //如果是数组那么在使用该注解是该属性的值 使用{}来给定
    String[] hobby();
    //枚举类型
    Em em();
    //注解类型的属性
    Custom1 custom();
}
@interface Custom1{
     String name();
}
enum Em{
    TYPE,ADDRESS,NAME
}
@Annotation(hobby = {"跳高","谈工作"},em = Em.ADDRESS,custom = @Custom1(name = "张麻子"))
class Teacher01{

}
